Состав команды:

Алана Золоева, Егор Дулесов, София Лазарева, Анна Федотова, Ксения Сливкина

Общая логика рекомендации

Нашей задачей было создание рекомендательных систем, основанных на разных методах: content-based и коллаборативная фильтрация. Эти системы должны помогать пользователям выбирать фильмы согласно их предпочтениям.

Наша content-based рекомендация основывается на схожести фильмов по 4 переменным. Это актеры, режиссеры, язык, на котором фильм доступен на хостинговой платформе, а также жанры.

Мы построили вторую рекомендательную систему, основанную на методе коллаборативной фильтрации, а именно методе UBCF, так как после оценки система, построенная данным методом, оказалась более точной, чем IBCF система.

Идея нашей рекомендательной системы и ее итоговый вид основывались на логике и пользовательском опыте участников команды, а также на последующих проверках адекватности путем нашей оценки и оценки привлеченных для помощи сторонних, незаинтересованных людей.

Какие переменные использовали и почему? / Разведочный анализ данных

Сетевой анализ

В контексте сетового анализа мы изучали следующие переменные:

  • genres
  • production-companies
  • production-countries
  • spoken_languages

1. Выделим сообщества фильмов, близких с точки зрения жанров.

## [1] 9

Получаем 9 сообществ

## В 1 группе 106 фильмов 
## В 2 группе 92 фильмов 
## В 3 группе 222 фильмов 
## В 4 группе 115 фильмов 
## В 5 группе 5 фильмов 
## В 6 группе 7 фильмов 
## В 7 группе 4 фильмов 
## В 8 группе 1 фильмов 
## В 9 группе 1 фильмов
  • Таким образом, можно использовать жанры для деления на сообщества, а значит и для рекомендательной системы. 2 группы, состоящие из 1 фильма, не создадут проблем, так как для них можно будет использовать другие параметры при рекомендации.*

2. Выделим сообщества фильмов, близких с точки зрения языков, на которых доступен просмотр фильма на Netflix.

## [1] 27

Получаем 27 сообществ

## В 1 группе 29 фильмов 
## В 2 группе 34 фильмов 
## В 3 группе 30 фильмов 
## В 4 группе 2 фильмов 
## В 5 группе 2 фильмов 
## В 6 группе 345 фильмов 
## В 7 группе 3 фильмов 
## В 8 группе 8 фильмов 
## В 9 группе 25 фильмов 
## В 10 группе 4 фильмов 
## В 11 группе 18 фильмов 
## В 12 группе 4 фильмов 
## В 13 группе 5 фильмов 
## В 14 группе 16 фильмов 
## В 15 группе 10 фильмов 
## В 16 группе 2 фильмов 
## В 17 группе 3 фильмов 
## В 18 группе 1 фильмов 
## В 19 группе 1 фильмов 
## В 20 группе 1 фильмов 
## В 21 группе 1 фильмов 
## В 22 группе 1 фильмов 
## В 23 группе 1 фильмов 
## В 24 группе 1 фильмов 
## В 25 группе 1 фильмов 
## В 26 группе 1 фильмов 
## В 27 группе 1 фильмов
  • Снова есть группы, состоящие из 1 фильма, поэтому необходимо отфильтровать языки, на которых доступно очень малое количество фильмов. Данную переменную также стоит вкючить в систему рекомендаций.

  • Сетевой анализ стран-производителей и компаний-производителей не дал полезных результатов: у первой переменной получилось очень мало групп, между которыми фильмы распределены крайне неравномерно, у второй переменной, наоборот, сообществ слишком много, поэтому адекватной рекомендации не выйдет.

  • Таким образом, в content-based рекомендательную систему войдут переменные genres и spoken_languages.

Текстовый анализ

Текстовый анализ коснулся следующих переменных:

  • tagline
  • overview

Мы провели частотный анализ и анализ тональностей, выделили биграммы и разбили текст на темы при помощи LDA.

С помощью частотного анализа мы пытались выделить характерные для фильмов разных жанров слова, но результаты оказались не особенно содержательными: самые частотные слова в некоторых жанрах совпадают, но контекст, в котором они употребляются, разный. Если использовать эти слова, например, при построении content-based системы, то пользователь может получить некачественную рекомендацию.

Результаты сентимент-анализа и выделенные биграммы тоже оказались неинформативными, поэтому мы не использовали их при построении рекомендательной системы.

Однако LDA анализ оказался полезен нам, но не для рекомендательной системы, а для решения проблемы “холодного старта”. Далее немного подробнее об этом анализе.

Теперь сделаем некоторые предположения по пяти топикам.

Посмотрим на третью тему. Похоже, что она выделила фильмы, связанные с пришельцами и космосом(star, earth, planet, alien)

4 - семья

5 - бандитские фильмы про гангстеров (prison, fight, money, friends, buried, death)

6 - школа, необычные существа(Франкенштейн, Бэтмен)

7 - триллеры и детективы

8 - Путешествия и приключения

Таким образом, темы, которые мы получили с помощью LDA, мы решили применить в случае «холодного старта»: если пользователю не знаком или не нравится ни один фильм из нашей базы, он может выбрать интересную ему тему.

Стоит отметить, что выделенные нами темы в связи с несовершенством алгоритма LDA и относительно небольшим объёмом фильмов являются условными.

Может возникнуть вопрос: зачем применять разбиение по темам, если есть жанры, но суть в том, что жанры не всегда отражают тематику фильма. Например, и фильм про инопланетян, и фильм про ограбление может быть отнесён к жанру “Action”.

Дополнительный анализ

Также помимо сетевого и текстового анализа мы изучили остальные переменные иными способами, и здесь мы подробнее поговорим о результатах, которые так или иначе повлияли на нашу итоговую систему.

1. Анализ с использованием деревьев

Мы решили привлечь дополнительные данные про актёров, режиссёров и остальных членов команды.

Чтобы понять, помогут ли нам актёры и режиссёры при построении рекомендательной системы, мы решили построить регрессионное дерево, предсказывающее значение переменной rating в зависимости от актёров и режиссёров.

  • Построим регрессиионное дерево, предсказывающее переменную rating по переменной actor.

Оценим точность дерева на тестовой выборке методом объяснённой дисперсии и, если не получится, методом подсчёта средней абсолюной процентной ошибки.

## [1] -0.5298759

Возможно, модель нам не подходит, но можно попробовать измерить ещё один показатель - MAPE(mean absolute percentage error). Если 1-MAPE окажется высоким, то модель всё-таки подойдёт.

## [1] 0.8656396

Таким образом прогноз точен, поэтому мы можем использовать актёров для построения рекомендательной системы.

  • Построим регрессиионное дерево, предсказывающее переменную rating по переменной director_name.

Оценим точность дерева тем же методом.

## [1] -1.246122

Приблизительно такие же результаты при проверке R^2. Посчитаем 1-MAPE.

## [1] 0.8395627

Прогноз так же точен, поэтому режиссеров мы также можем использовать для построения рекомендательной системы.

  • Попробуем построить дерево для обеих переменных актеров и режиссеров.

Оценим точность дерева.

## [1] -1.204078

Также получаем схожие результаты при проверке R^2. Посчитаем 1-MAPE.

## [1] 0.8332968

Точность немного выше, чем если брать просто режиссёров, и немного ниже, чем если брать просто актёров. Тем не менее, опросив друзей и членов семьи, мы узнали, что большинство из них скорее смотрели бы и на актёра, и на режиссёра, выбирая фильм, поэтому остановимся на актёрах и режиссёрах.

Таким образом благодаря проведенному анализу мы выяснили, что полезными для рекомендаельной системы окажутся переменные актеров, режиссеров, жанров и доступных языков фильма. О самой рекомендательной системе поговорим чуть позже.

2. Посмотрим, на каких языках в основном доступны фильмы

Как мы видим, на многих языках доступно очень малое количество фильмов, что еще раз сигнализирует о том, что необходимо провести фильтрацию данных.

Рекомендательная система методом коллаборативной фильтрации, примеры работы и обсуждение

Здесь мы переходим к частям нашего отчета, в которых будут представлены рекомендательные системы, примеры их работы на основе некоторых функций и их оценка.

IBCF метод

Входные данные: id пользователя

Здесь мы строим рекомендательную систему, указывая число 10, как минимальное количество оценок, которые поставил каждый пользователь и которые получил каждый фильм. Далее мы указываем параметр goodRating = 4, что говорит о том, что рекомендательная система не будет предлагать пользователю фильмы, рейтинг которых ниже 4. Также мы делим датасет на тестовую и обучающую выборку и находим метрики отклонения модели.
x
RMSE 1.414626
MSE 2.001168
MAE 1.083945

Метрики MAE и RMSE достаточно низкие, что хорошо, но не настолько, чтобы ими пренебречь. Так как RMSE и MAE ~1.8 и ~1.4 соответственно, утверждаем, что наша система может иногда выдавать неточные рекомендации.

UBCF метод

Входные данные: id пользователя

Здесь мы строим рекомендательную систему, указывая те же парметры, что в способе IBCF (число 10, как минимальное количество оценок, которые поставил каждый пользователь и которые получил каждый фильм; goodRating = 4, как минимальная оценка предлагаемого системой фильма; и мы также делим датасет на тестовую и обучающую выборку и находим метрики отклонения модели).
x
RMSE 0.9970621
MSE 0.9941328
MAE 0.7799917

Все параметры ошибок этой модели ниже чем параметры модели, построенной методом IBCF. Таким образом, эта модель точнее, и мы будем использовать именно ее.

Применение UBCF модели

Здесь мы создадим функцию, основанную на рекомендательной системе, а также на некоторых примерах проверим качество ее работы.

Рассмотрим работу функции на примере пользователя 270124. Предложим данному пользователю 5 фильмов, которые наилучшим образом подходят его предпочтениям.
x
Sleepless in Seattle
5 Card Stud
Under the Sand
A Woman, a Gun and a Noodle Shop
Men in Black II

Оценим полученную модель и результаты ее рекомендации с помощью общего принципа.

x
Sleepless in Seattle
5 Card Stud
Under the Sand
A Woman, a Gun and a Noodle Shop
Men in Black II
Возьмем пользовательский топ-5 фильмов с имеющимися оценками. Также посмотрим на долю каждого жанра в списке любимых фильмов пользователя.
genres_sep n prop
Action 5 0.2631579
Science Fiction 3 0.1578947
Thriller 3 0.1578947
Drama 2 0.1052632
Adventure 2 0.1052632
Horror 1 0.0526316
Crime 1 0.0526316
Comedy 1 0.0526316
Fantasy 1 0.0526316
А теперь посмотрим на жанры и их доли в предсказании.
genres_sep n prop
Drama 3 0.2000000
Comedy 3 0.2000000
Action 2 0.1333333
Thriller 2 0.1333333
Science Fiction 1 0.0666667
Western 1 0.0666667
Adventure 1 0.0666667
Romance 1 0.0666667
Mystery 1 0.0666667

Жанры драма, триллер и боевик в нашей можели совпадают с теми жанрами фильмов, которые пользователь высоко оценил. Однако, есть и существенные различия, например, один из самых любимых жанров пользователя - научная фантастика, отсутствует среди рекомендованых нами. Таким образом, данна система не идеальна, но вполне может подобрать фильмы, которые бы были интересны пользователю.

Рекомендательная система методом content - based, примеры и обсуждение

Здесь мы создим нашу рекомендательную систему, основанную на результатах нашего разведочного анализа, нашем пользовательском опыте, а также опыте опрошенных нами людей. Таким образом наша рекомендательная система основывается на 4 переменных: жанр, актеры, режиссер, доступный язык. Также мы удалим те фильмы, которые доступны для просмотра менне чем на трех языках, и те, которые не имеют информацию об актерах или режиссере.

После построения рекомендательной системы нам необходимо рассмотреть сценарии ее применения. Таким образом, далее мы продемонстрируем работу функций, работающих с нашей системой, но основывающихся на разных входных данных.

1. Функция «Введите любимый и нелюбимый фильм».

Входные данные: любимый и нелюбимый фильм пользователя

Пользователю будут предложены фильмы, максимально похожие на его любимый, и если среди них есть фильмы, схожие с его нелюбимым, то они выводиться не будут. А если фильм, который пользователю не нравится, очень похож на тот, который ему нравится, то ему будет предложено попробовать ввести другие фильмы.

Пример работы Посмотрим рекомендацию для юзера 132310. Найдём его любимый и нелюбимый фильм и посоветуем ему другие.
[1] “Любимый фильм” [1] “The 39 Steps” [1] “Нелюбимый фильм” [1] “28 Weeks Later”
title
Hard Target
Rope
Secret Agent
The Thirteenth Floor
Terminator 3: Rise of the Machines
Посмотрим на характеристики фильмов, которые мы ему рекомендовали.
title genres original_language actor director_name
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Jean-Claude Van Damme John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Arnold Vosloo John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Lance Henriksen John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Yancy Butler John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Sven-Ole Thorsen John Woo
Rope [{‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 53, ‘name’: ‘Thriller’}] en James Stewart Alfred Hitchcock
Rope [{‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 53, ‘name’: ‘Thriller’}] en John Dall Alfred Hitchcock
Rope [{‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Farley Granger Alfred Hitchcock
Rope [{‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Constance Collier Alfred Hitchcock
Rope [{‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Douglas Dick Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en John Gielgud Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Peter Lorre Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Madeleine Carroll Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Robert Young Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Percy Marmont Alfred Hitchcock
The Thirteenth Floor [{‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Craig Bierko Josef Rusnak
The Thirteenth Floor [{‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Armin Mueller-Stahl Josef Rusnak
The Thirteenth Floor [{‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Gretchen Mol Josef Rusnak
The Thirteenth Floor [{‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Vincent D’Onofrio Josef Rusnak
The Thirteenth Floor [{‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Dennis Haysbert Josef Rusnak
Terminator 3: Rise of the Machines [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Arnold Schwarzenegger Jonathan Mostow
Terminator 3: Rise of the Machines [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Nick Stahl Jonathan Mostow
Terminator 3: Rise of the Machines [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Claire Danes Jonathan Mostow
Terminator 3: Rise of the Machines [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Kristanna Loken Jonathan Mostow
Terminator 3: Rise of the Machines [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en David Andrews Jonathan Mostow
Теперь посмотрим на все характеристики любимого и нелюбимого фильма.
title genres original_language actor director_name
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Robert Donat Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Madeleine Carroll Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Lucie Mannheim Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Godfrey Tearle Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Peggy Ashcroft Alfred Hitchcock
title genres original_language actor director_name
28 Weeks Later [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Imogen Poots Juan Carlos Fresnadillo
28 Weeks Later [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Robert Carlyle Juan Carlos Fresnadillo
28 Weeks Later [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Rose Byrne Juan Carlos Fresnadillo
28 Weeks Later [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Jeremy Renner Juan Carlos Fresnadillo
28 Weeks Later [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 878, ‘name’: ‘Science Fiction’}] en Harold Perrineau Juan Carlos Fresnadillo

Есть ли совпадения с любимым фильмом?

## [1] "Madeleine Carroll"
## [1] "Alfred Hitchcock"
## [1] "en"

Совпадает один режиссёр (Alfred Hitchcock), одна актриса (Madeleine Carroll) и язык (en).

Посмотрим на нелюбимый фильм.

## character(0)
## character(0)
## [1] "en"

Совпадает только язык.

2. Следующая функция — «Введите n любимых фильмов».

Входные данные: n любимых фильмов пользователя

Пользователь должен создать сет из своих любимых фильмов, указать, какое количество он ввёл и указать, сколько рекомендаций он хочет получить. Изначально пользователь должен был ввести 5 фильмов, но в peer review нам неоднократно намекнули, что это очень много, поэтому мы изменили функцию так, чтобы пользователь сам определял, сколько фильмов он хочет ввести. Пользователю будет предложено выбранное им количество фильмов, максимально похожих на его любимые.

Проверим систему. Введём фильмы “The Sixth Sense”, “Die Hard”,“Die Hard 2”,“Saw II”.
title
Dawn of the Dead
The Bourne Supremacy
The Village
My Name Is Bruce
Within the Woods

Все рекомендованные фильмы оказались ужастиками или триллерами.

Проверим рекомендации второй системы для того же юзера, на котором проверяли работу первой функции. Допустим, он ввёл 5 фильмов (Cutthroat Island, Three Colors: Red, Judgement Night, The 39 Steps, Bollywood/Hollywood) и хочет получить 5 рекомендаций. Посмотрим на рекомендованные ему фильмы.

title genres original_language actor director_name
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Jean-Claude Van Damme John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Arnold Vosloo John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Lance Henriksen John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Yancy Butler John Woo
Hard Target [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Sven-Ole Thorsen John Woo
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en John Gielgud Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Peter Lorre Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Madeleine Carroll Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Robert Young Alfred Hitchcock
Secret Agent [{‘id’: 53, ‘name’: ‘Thriller’}] en Percy Marmont Alfred Hitchcock
Indochine [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Catherine Deneuve Régis Wargnier
Indochine [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Vincent Pérez Régis Wargnier
Indochine [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Linh Đan Phạm Régis Wargnier
Indochine [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Jean Yanne Régis Wargnier
Indochine [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Dominique Blanc Régis Wargnier
Point Break [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Patrick Swayze Kathryn Bigelow
Point Break [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Keanu Reeves Kathryn Bigelow
Point Break [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Gary Busey Kathryn Bigelow
Point Break [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Lori Petty Kathryn Bigelow
Point Break [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en John C. McGinley Kathryn Bigelow
Bullitt [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Steve McQueen Peter Yates
Bullitt [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Robert Vaughn Peter Yates
Bullitt [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Jacqueline Bisset Peter Yates
Bullitt [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Don Gordon Peter Yates
Bullitt [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 80, ‘name’: ‘Crime’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 53, ‘name’: ‘Thriller’}] en Robert Duvall Peter Yates
Посмотрим на характеристики введённых им фильмов.
title genres original_language actor director_name
Cutthroat Island [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}] en Geena Davis Renny Harlin
Cutthroat Island [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}] en Matthew Modine Renny Harlin
Cutthroat Island [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}] en Frank Langella Renny Harlin
Cutthroat Island [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}] en Maury Chaykin Renny Harlin
Cutthroat Island [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 12, ‘name’: ‘Adventure’}] en Patrick Malahide Renny Harlin
Three Colors: Red [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Irène Jacob Krzysztof Kieślowski
Three Colors: Red [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Jean-Louis Trintignant Krzysztof Kieślowski
Three Colors: Red [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Jean-Pierre Lorit Krzysztof Kieślowski
Three Colors: Red [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Frédérique Feder Krzysztof Kieślowski
Three Colors: Red [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 10749, ‘name’: ‘Romance’}] fr Samuel Le Bihan Krzysztof Kieślowski
Judgment Night [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Emilio Estevez Stephen Hopkins
Judgment Night [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Cuba Gooding Jr. Stephen Hopkins
Judgment Night [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Denis Leary Stephen Hopkins
Judgment Night [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Jeremy Piven Stephen Hopkins
Judgment Night [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 80, ‘name’: ‘Crime’}] en Peter Greene Stephen Hopkins
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Robert Donat Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Madeleine Carroll Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Lucie Mannheim Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Godfrey Tearle Alfred Hitchcock
The 39 Steps [{‘id’: 28, ‘name’: ‘Action’}, {‘id’: 53, ‘name’: ‘Thriller’}, {‘id’: 9648, ‘name’: ‘Mystery’}] en Peggy Ashcroft Alfred Hitchcock
Bollywood/Hollywood [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10402, ‘name’: ‘Music’}, {‘id’: 10749, ‘name’: ‘Romance’}] en Rahul Khanna Deepa Mehta
Bollywood/Hollywood [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10402, ‘name’: ‘Music’}, {‘id’: 10749, ‘name’: ‘Romance’}] en Lisa Ray Deepa Mehta
Bollywood/Hollywood [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10402, ‘name’: ‘Music’}, {‘id’: 10749, ‘name’: ‘Romance’}] en Moushumi Chatterjee Deepa Mehta
Bollywood/Hollywood [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10402, ‘name’: ‘Music’}, {‘id’: 10749, ‘name’: ‘Romance’}] en Dina Pathak Deepa Mehta
Bollywood/Hollywood [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10402, ‘name’: ‘Music’}, {‘id’: 10749, ‘name’: ‘Romance’}] en Kulbhushan Kharbanda Deepa Mehta
## [1] "Madeleine Carroll"
## [1] Alfred Hitchcock
## 85929 Levels: 'Evil' Ted Smith     Faris Kermani  ... Ярослав Чеважевский
## [1] "en" "fr"

Совпала актриса (Madeleine Carroll), режиссёр (Alfred Hithchcock), два языка (en, fr).

Что будет, если ввести фильм не из базы?

Введём фильмы “The Sixth Sense”, “kek”,“lol”,“Saw II”. [1] “Фильма номер 2 нет в базе, введите другой фильм” [1] “Фильма номер 3 нет в базе, введите другой фильм”

Пользователь может заменить эти фильмы или просто ввести меньше фильмов.

Ответы на вопросы

Для начала хотелось бы отметить, что многие заданные нам вопросы относятся к коду. В связи с ограниченным временем мы не могли осветить все технические подробности и презентовали в основном результаты нашего анализа.

  1. Почему строили рек-ую систему именно по IBCF?
  • Сначала мы сравнивали системы по общему принципу, и большой разницы между ними не было, поэтому мы оставили IBCF-систему в презентации. Однако после того, как мы сравнили системы при помощи метрик отклонения, мы решили оставить в итоговом отчёте UBCF-систему.
  1. Будет ли пользователю удобно вводить 5 любимых фильмов, чтобы получить рекомендацию?(один из способов получения рекомендации)
  • В peer review нам неоднократно намекнули, что 5 фильмов - это очень много, поэтому мы изменили функцию так, чтобы пользователь сам определял, сколько фильмов он хочет ввести.
  1. Как разрешили сложность с выдачей рекомендации?(ребята сказали, что долгое время выдавались одинаковые фильмы)
  • Мы отфильтровали датасет по актёрам так, чтобы не было фильмов, где меньше трёх актёров, и проблема решилась. Почему-то фильмы с малым кол-вом актёров имели большой коэффициент similarity со многими фильмами.
  1. Были сказаны выводы разведочного анализа без его контента (какие-нибудь графики, например). Оценка системы только на паре примеров не очень показательна.
  • Система была оценена нами на нескольких примерах перед тем, как мы её презентовали, но мы решили выбрать только самый показательный в связи с ограниченным временем. То же самое можно сказать про разведочный анализ. К тому же, текстовый анализ нам почти не помог, и мы решили посвятить больше времени проблеме холодного старта и методам ввода данных (2 функции).
  1. Я бы предложил добавить для пользователей ссылку на опрос, чтобы они сами уже оценили качество работы рекомендательной системы
  • Хорошее предложение, но сложное для технической реализации. Нам нужно бы было вывесить базу из всех фильмов, сказать пользователям выбрать фильм, пользователям бы пришлось ждать, пока мы введём их фильмы в нашу рекомендательную систему и пришлём им результаты, которые они бы оценили. Метод опроса друзей через соц. сети без размещения ссылки показался нам более логичным.
  1. Непонятно, как используются данные о любимом и нелюбимом фильме (как именно датасет фильтруется по ним и в каком порядке).
  • Пользователю рекомендуются фильмы, максимально похожие на любимый фильм. Если среди них есть фильмы, похожие на его нелюбимый фильм, то они выведутся из списка рекомендованных. Если нелюбимый фильм пользователя похож на любимый, то мы просим его ввести другой фильм. Или же он может воспользоваться нашей второй функцией.
  1. Не было полностью понятно, как было использовано дерево в построении рекомендательной системы
  • Регрессионное дерево использовалось для выявления зависимостей между переменной rating и остальными переменными. До присоединения доп. данных дерево построилось лишь по переменной timestamp, которая показалась нам не очень показательной.Затем мы обнаружили, что существует некоторая связь этой переменной с доп. данными, и оценили точность дерева с помощью различных метрик.
  1. Не очень понятно каким образом пользователь может выбрать тему фильма? Что делать в случае абсолютно холодного старта, т. е. пользователь не выбрал любимые фильмы и не смог определиться с темой?
  • Пользователю(в теории, см. пункт отчёта про LDA) предлагается список тем, которые мы выделили с помощью LDA.
  • Если пользователь не смог выбрать ни фильм, ни тему, в теории мы можем предложить ему выбрать фильм с помощью ключевых слов или с помощью слов, которые мы выделили на этапе частотного анализа, но нам кажется, что такой исход маловероятен, так как в нашем датасете есть много популярных фильмов.
  1. В рекомендации учитывается весь актерский состав или только главные роли?
  • Актёры в главных ролях (до 5) и режиссёры.
  1. Как учитывается переменная языка фильма? Пользователь ввел название фильма, который доступен не в одном переводе. Как система поймет, на каком языке пользователь посмотрел этот фильм и соответственно, фильм на каком языке ему нужно рекомендовать?
  • Нами учитывается язык оригинала. Многие пользователи предпочитают смотреть только фильмы производства конкретных стран (им соответствует язык оригинала), но переменная production_countries не подходит, так как из неё не видно, какая страна принимала участие в создании фильма больше.
  1. Что если я введу фильм, которого нет в системе?
  • Система предложит пользователю ввести другой фильм (в обеих функциях).
  1. Не объяснили почему не использовался метод ubcf
  • Объяснили в первом вопросе.
  1. почему не взяли такие параметры, как бюджет, популярность и тд
  • Бюджет при разведочном анализе показал среднюю корреляцию с популярностью, поэтому его решили не включать.
  1. Почему был выбран язык фильма в качестве важной характеристики для построения content-based рекомендательной системы?
  • Разбиение по сообществам на языки на этапе сетевого анализа дало хороший результат.
  1. Не совсем понятно, сколько вообще фильмов осталось после фильтрации
  • После фильтрации по актёрам осталось 545 фильмов из 555, затем мы отфильтровали датасет по жанрам и языкам, и осталось 530 фильмов.
  1. Как человек может вводить 5 фильмов и чтобы все попадали в наличие в датасете
  • Если пользователь введёт фильм, которого нет в датасете, функция предложит ему выбрать другой и укажет, какого именно фильма нет в базе.
  • Если пользователь не может ввести 5 фильмов, которые есть в базе, он может воспользоваться функцией с вводом любимого/нелюбимого фильма.
  • К тому же, мы решили модифицировать эту функцию для удобства пользователей, и теперь пользователь может ввести n-ое кол-во любимых фильмов.
  1. Я несколько не поняла, какие фильмы и почему были убраны из рассмотрения из-за того, что они были “доступны на малом количестве языков”. Фильмы только на английском, например, и без того собирают большую аудиторию.
  • Это была оговорка. На многих языках доступно очень малое количество фильмов. Будет логично исключить из датасета фильмы, которые были сняты на нераспространённых языках, так как иначе система не сможет подобрать к ним рекомендации, или же рекомендации будут неточны по остальным параметрам.
  1. По рекомендациям с любимыми фильмами: насколько точными будут рекомендации пользователю, если его 5 любимых фильмов очень разные?
  • В презентации мы рассматривали пример, когда пользователь ввёл пять фильмов: Judgement Night, Three Colors: Red, The 39 Steps, Bollywood/Hollywood, Cutthroat Island. Это довольно разные по жанрам фильмы: романтический фильм, драма, триллер, экшн. Рекомендация, которую дала наша система (To Catch a Thief, Rope, Secret Agent, Shart in Africa, Minority Report), во многом совпадает с его вкусами:
    • жанры фильмов-рекомендаций совпадают с любимыми фильмами пользователя;
    • совпадают языки;
    • совпадения по персоналиям:
      • совпали режиссёры любимого фильма: Alfred Hitchcock, Stephen Hopkins;
      • совпала актриса из любимого фильма: Madeleine Carroll.
  • К тому же, разные любимые фильмы позволяют рекомендательной системе лучше выявить все аспекты вкуса пользователя.

Демонстрация примеров, которые бы хотели видеть наши коллеги

  1. Что будет, если я укажу, что мой любимый и нелюбимый фильм в одном жанре?
  • В нашей рекомендательной системе вы не указываете жанр, а вводите фильм. Посмотрим, что будет, если ввести фильмы одних жанров: “Sleepless in Seattle” как любимый и “Interview with the Vampire” как нелюбимый.
movieId title original_language genres director_name
2064 While You Were Sleeping en [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Jon Turteltaub
2058 Addicted to Love en [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 10749, ‘name’: ‘Romance’}] Griffin Dunne
2028 Say Anything… en [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Cameron Crowe
2565 Joe Versus the Volcano en [{‘id’: 14, ‘name’: ‘Fantasy’}, {‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 878, ‘name’: ‘Science Fiction’}, {‘id’: 10749, ‘name’: ‘Romance’}] John Patrick Shanley
74458 Mere Brother Ki Dulhan hi [{‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 10749, ‘name’: ‘Romance’}] Ali Zafar
Общие актёры
actor movieId title original_language genres director_name
Bill Pullman 858 Sleepless in Seattle en [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron
Meg Ryan 858 Sleepless in Seattle en [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron
Tom Hanks 858 Sleepless in Seattle en [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron
Meg Ryan 858 Sleepless in Seattle en [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron
Общие режиссёры
director_name movieId title original_language genres actor
Общие языки
original_language movieId title genres director_name actor
en 858 Sleepless in Seattle [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron Tom Hanks
en 858 Sleepless in Seattle [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron Meg Ryan
en 858 Sleepless in Seattle [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron Bill Pullman
en 858 Sleepless in Seattle [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron Ross Malinger
en 858 Sleepless in Seattle [{‘id’: 35, ‘name’: ‘Comedy’}, {‘id’: 18, ‘name’: ‘Drama’}, {‘id’: 10749, ‘name’: ‘Romance’}] Nora Ephron Rosie O’Donnell

Было рекомендовано 5 фильмов. Фильм “Sleepless in Seattle” является не только romance, но ещё и drama, comedy. Фильм “Interview with the Vampire” это ещё и horror. В рекомендациях нет ни одного фильма жанра horror. 4 актёра из любимого фильма пользователя есть в рекомендованных фильмах. Директора не совпали. Язык оригинала, английский, совпал.

Проверим нелюбимый фильм.
Общие актёры
actor movieId title original_language genres director_name
Общие режиссёры
director_name movieId title original_language genres actor
Общие языки
original_language movieId title genres director_name actor
en 628 Interview with the Vampire [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 10749, ‘name’: ‘Romance’}] Neil Jordan Brad Pitt
en 628 Interview with the Vampire [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 10749, ‘name’: ‘Romance’}] Neil Jordan Tom Cruise
en 628 Interview with the Vampire [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 10749, ‘name’: ‘Romance’}] Neil Jordan Kirsten Dunst
en 628 Interview with the Vampire [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 10749, ‘name’: ‘Romance’}] Neil Jordan Antonio Banderas
en 628 Interview with the Vampire [{‘id’: 27, ‘name’: ‘Horror’}, {‘id’: 10749, ‘name’: ‘Romance’}] Neil Jordan Christian Slater

Не совпало ничего, кроме языка (английский, неудивительно) и жанра romance.

Именно поэтому мы и выбрали несколько параметров, по которым составляется рекомендация: чтобы лучше выявить вкусы пользователя. Да, жанры любимого и нелюбимого фильма совпадают, но благодаря другим характеристикам рекомендация всё же даётся.

  1. Content-based система с жанрами дает меньший вес остальным критериям. В итоге для режиссеров, снимавших разнообразные по жанрам фильмы, будут предлагаться не они, а другие. Например, если я выберу у Стивена Спилберга Пинки и Брейна и Приключения Тинтина, то мне вряд ли предложат Капитана Крюка (хоть это тоже детское произведение), а выдадут что-нибудь схожее, но другого режиссера (например, 101 Далматинец).
  • К сожалению, в нашем датасете нет ни одного указанного вами фильма, поэтому вам бы вывелось сообщение, что фильма нет в датасете, про каждый фильм. Однако попробуем проверить то, о чём вы говорите, на двух фильмах Stanley Kubrick: “Lolita” и “2001: A Space Odyssey”.
    movieId title original_language genres director_name actor
    345 Eyes Wide Shut en [{‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 18, ‘name’: ‘Drama’}] Stanley Kubrick Tom Cruise
    345 Eyes Wide Shut en [{‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 18, ‘name’: ‘Drama’}] Stanley Kubrick Nicole Kidman
    345 Eyes Wide Shut en [{‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 18, ‘name’: ‘Drama’}] Stanley Kubrick Madison Eginton
    345 Eyes Wide Shut en [{‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 18, ‘name’: ‘Drama’}] Stanley Kubrick Jackie Sawiris
    345 Eyes Wide Shut en [{‘id’: 9648, ‘name’: ‘Mystery’}, {‘id’: 18, ‘name’: ‘Drama’}] Stanley Kubrick Sydney Pollack

Если пользователь запросит 6 и более рекомендаций, там будет и фильм Stanley Kubrick. Тем не менее, мы согласны, что это будет неудобно пользователю, который при выборе фильма ориентируется только на режиссёра фильма, но мы полагаем, что таких не большинство(по опросу членов нашей команды и наших семей).

  1. Если я введу фильм “Psycho”, порекомендует ли мне система фильм “The Third Man”?
Только если вы запросите 346 рекомендаций и больше.
title
The Third Man
  1. Предположим в датасете вашей команды нет моих любимых фильмов, но я предпочитаю фильмы про роботов и возможное будущее. Система порекомендует какую-либо из частей Терминатора?
  • Это случай «холодного старта», для которого мы не строили отдельную функцию. Полагаем, что да.
  1. Что будет, если я укажу “Мистер и миссис Смит”. Ожидаю, что система выдаст 5 фильмов, среди которых будут фильмы с участием Бреда Питта и Анджелины Джоли и фильмы того же режиссера (Дага Лаймона). Например, “Лазурный берег”, “Выход через сувенирную лавку”, “Ее сердце”, “Проклятый дом”, “Игра без правил”.
  • Система попросит вас ввести другой фильм, так как его нет в нашем датасете.
  1. Хотела бы ввести по 1 любимому фильму из 5 франшиз. предполагаю, что мне попадутся еще по 1 фильму из этих же франшиз. В нашем датасете, к сожалению, нет фильмов из 5 франшиз. В нашем датасете есть фильмы из франшизы «Звёздных войн», введя первый фильм франшизы — “Star Wars”.
title
Hard Target
Escape from New York
Star Wars: Episode II - Attack of the Clones
Men in Black II
X-Men Origins: Wolverine

В полученных рекомендациях есть второй фильм — «Star Wars: Episode II - Attack of the Clones».

  1. Так как учитывается параметр с актером, хотелось бы ввести фильм однокласниики, а на выходе получить другие фильмы с адамом сендлером.
  • К сожалению, в нашем датасете нет этого фильма.
  1. Если пользователь высоко оценил все фильмы Тарантино, то какие 5 фильмов были бы ему рекомендованы (за исключением фильмов Тарантино)?

Возьмём пользователя 10293, который оценил на 5 единственный фильм режиссуры Тарантино в нашем датасете.

Посмотрим на его любимые фильмы.
title
Back to the Future
Back to the Future Part III
Galaxy Quest
The Talented Mr. Ripley
Ocean’s Twelve
  1. Если мне нравится фильм остров проклятых, увидеть “начало” или “великий гэтсби”
  • Система попросит вас ввести другой фильм, так как его нет в нашем датасете.
  1. Если бы был новый пользователь, которому понравились 5 определенных фильмов, ему порекомендовались бы 5 других фильмов с совпадающими некоторыми характеристиками (например, если бы среди 5 любимых фильмов в большей части играла Энн Хэтэуэй, то с большой вероятностью она будет играть и в предложенных). Да.